#ifndef __BONUSBINGOCARD_H__
#define __BONUSBINGOCARD_H__

#include "BonusBingoConstants.h"

class BonusBingoCard
{
public:
    BonusBingoCard();
    ~BonusBingoCard();

    void setValues( const uint8* firstValue );

    uint8 getValue( const uint8 column, const uint8 row) const;

    bool8 isValid() const;

    bool8 isActive() const;

    void activate(bool8 activated);

	int32 getID() const;

	void setID( int32 id );

    enum
    {
        //24 values "picked" by the player
        //there's also 1 "wild" pick, the center square
        //whose value we'll represent as a zero
        NUM_WILD_VALUE   =    0,
        NUM_WILD_INDEX   =   12,
        NUM_BINGO_PICKS  =   BonusBingo::NUMBER_OF_PICKS,
        NUM_MAX_VALUE    =   BonusBingo::PICK_RANGE_HIGH
    };

    enum
    {
        COLUMN_B,
        COLUMN_I,
        COLUMN_N,
        COLUMN_G,
        COLUMN_O,
        NUM_COLUMNS
    };

    static int32 GetColumn( uint8 value );

protected:
	int32	m_id;

    bool8   m_active;

    uint8   m_values[5][5];
};

#endif //__BONUSBINGOCARD_H__